package com.base.mvp;//package com.qianbei.common.base.mvp;

//import android.os.Bundle;


import android.os.Bundle;

import com.base.activity.BaseActivity;

import javax.inject.Inject;

/**
 * Created by WuXiaolong on 2016/3/30.
 * github:https://github.com/WuXiaolong/
 * weibo:http://weibo.com/u/2175011601
 * 微信公众号：吴小龙同学
 * 个人博客：http://wuxiaolong.me/
 */
public abstract class MVPBaseActivity<V extends BaseView,P extends BasePresenter > extends BaseActivity {


    /**
     * 1构造器注入，@Inject标注在构造器上其实有两层意思。
     * <p>
     * ①告诉Dagger2可以使用这个构造器构建对象。如 Rose 类
     * <p>
     * ②注入构造器所需要的参数的依赖。 如 Pot 类，构造上的Rose会被注入。
     * <p>
     * 构造器注入的局限：如果有多个构造器，我们只能标注其中一个，无法标注多个。
     * <p>
     * 2属性注入
     * <p>
     * 如 MainActivity 类，标注在属性上。被标注的属性不能使用 private 修饰，否则无法注入。
     * <p>
     * 属性注入也是Dagger2中使用最多的一个注入方式。
     * <p>
     * 3方法注入
     */
    @Inject
    protected P mPresenter;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        mvpPresenter = createPresenter();
        if(mPresenter!=null){
            mPresenter.attachView((V) this);
        }


    }

//    protected abstract P createPresenter();

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mPresenter != null) {
            mPresenter.detachView();
        }
    }

    public void showLoading() {
//        showProgressDialog();
    }

    public void hideLoading() {
//        dismissProgressDialog();
    }
}
